技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2022 iThome 鐵人賽
DAY
14
1
自我挑戰組
開始系統測試
系列 第
14
篇
Day 14 | 軟體測試階段(一) - 單元測試與整合測試
14th鐵人賽
Pancy
2022-09-29 02:58:59
4773 瀏覽
分享至
一、測試階段的分類
測試階段也稱為測試級別
分類
單元測試
整合測試
系統測試
驗收測試
二、單元測試
什麼是單元?
單元是軟體內最小的、可以單獨執行程式碼的單位。
對於控制語言(如C、Visual Basic等),通常由一個或多個最接近的函式(function)或過程(procedure)所組成
對於物件導向設計(如Java、C++等),可以是一個類或類的實例,或者由方法(method)來實現功能
對於網頁或是視窗介面,單元可以是一個文字輸入框或一個按鈕等。
什麼是單元測試(Component Testing)?
針對一個軟體單元的測試
這個階段的測試通常由開發人員執行,發現缺陷後立刻進行修改,也沒有任何形式的紀錄
單元測試的重點、所需知識和前置條件
測試重點
功能性測試
健壯性 - 逆向測試:無效值
性能
所需知識/know-how
開發知識和技能
基本的測試技術
前置條件
完成編譯的測試對象
測試環境
開發工具
測試對象的規範說明
單元測試使用的技術和能發現的缺陷
典型的技術
白箱測試技術(語句、分支覆蓋等) - 觀察程式的每一個過程是否符合需求
黑箱測試技術(等價類劃分、邊境值分析等) - 只看輸出結果是否正確
一般情況下是先黑後白,但白箱測試用的更多,白箱和黑箱是一起寫案例的。
能發現的缺陷
單元內的功能性缺陷
運行時的缺陷
(本機)效能問題
健壯性問題
可能遺留的缺陷
API問題
「大環境」的問題
許多非功能性的缺陷
單元測試需要撰寫程式碼
驅動程式(Driver) - 通過API與測試對象通訊的輔助工具,用於調用被測式的單元或系統替代性程式。
模擬函數(Stub) - 替代或模擬還沒完成的單元(模組),用於模擬輸入和輸出(針對尚未完整的功能)
模擬軟體(Simulation) - 用一個系統來描述另一個要測試的抽象系統行為驗證
三、整合測試
什麼是整合?
把單元/系統合併為更大部件的過程
什麼是整合測試(Integration Testing)?
目標在暴露
API
以及整合組件/系統間
交互
時存在的缺陷測試。
有多種整合類型,如:
單元整合測試(compoment integration testing) - 測試目的在於發現API和整合後單元間協同工作的缺陷。
參數的輸入與輸出為API,而傳遞過程為交互
API側重於靜態,交互則側重於動態
一般常說的整合測試就是單元整合測試
系統整合測試(system integration testing)
測試系統和其他軟體包的整合:如商務標準軟體(Commercial Off-The-Shelf software,COTS)的整合
測試與外部系統的API和交互:如電子數據的交換、網路
單元測試通常是單人執行,而整合測試通常是多人或第三方執行。
整合測試的重點、所需知識和前置條件
測試重點
API
系統內不同部分的交互作用
所需知識/know-how
最好具備開發知識和技能(有可能需要測試Driver和Stub)
測試技術
具備有關單元間的交互知識 - 單元間傳遞什麼參數、這些參數需要做什麼處理
前置條件
完成整合的被測系統
測試平台(test bed) - 在單元測試階段使用的一些工具可能在整合測試階段中被反覆使用
有關單元間交互的文件
整合測試使用的技術和能發現的缺陷
典型的技術
白箱測試技術(內部API)
黑箱測試技術(等價類劃分、邊境值分析等)
一般情況下仍是先黑後白,但白箱測試用的更多,白箱和黑箱是一起寫案例的。
能發現的缺陷
API的缺陷
單元間的協調錯誤
可能遺留的缺陷
相關單元外的問題
整個系統需求的不滿足
與外部系統的API常常被忽略
整合測試的策略
向下整合(top-down integration)
向上整合(bottom-down integration)
留言
追蹤
檢舉
上一篇
Day 13 | 錯誤推測
下一篇
Day 15 | 軟體測試階段(二) - 系統測試與驗收測試
系列文
開始系統測試
共
30
篇
目錄
RSS系列文
訂閱系列文
13
人訂閱
26
Day 26 | 性能測試
27
Day 27 | Web測試
28
Day 28 | 手機APP測試(一)
29
Day 29 | 手機APP測試(二)
30
Day 30 | 自動化測試概述
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
419
組
團體組數
14
組
累計文章數
3224
篇
最後報名日
9/15
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
17th鐵人賽
windows
php
c#
windows server
linux
css
react
熱門問題
不知道網路紅隊的要去那加公司
備份映像檔
Outlook 寄件備份消失問題 (已解決)
Jaspersoft 的資料庫連結 出現錯誤:驅動程式無法使用安全通訊端層 (SSL) 加密建立與 SQL Server 的安全連接。
aws ec2 檢查故障問題
請問有人遇過在lightsail上部屬fastapi失敗的案例?
IIS 管理員 連線功能不見
port-forwading到遠程網段
尋求git之外的 高效能本機檔案備份 & 版本管理推薦
熱門回答
不知道網路紅隊的要去那加公司
備份映像檔
請問有人遇過在lightsail上部屬fastapi失敗的案例?
aws ec2 檢查故障問題
port-forwading到遠程網段
熱門文章
什麼是 Signal ?
序: AI 加速編碼後,你該學什麼?
Signal 的核心概念
第11天,LibreOffice 更省錢 / 司機俱樂部 宵夜好選擇(台北松山)| 30天滷肉飯
第12天,即時通訊軟體選擇 / 金峰滷肉飯 台北名店(台北中正)| 30天滷肉飯
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}